<?xml version="1.0" encoding="utf-8"?>
<!--
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Daffodil for Visual Studio  <http://daffodil.codeplex.com>
- Native multi-targeting support for Visual Studio 2003 in Visual Studio 2010

2.4  [2012-11-09]

Owen Wengerd, ManuSoft
http://www.manusoft.com

Credits
  Some aspects of this project are based on information in this MSDN blog post:
  http://blogs.msdn.com/b/vcblog/archive/2009/12/08/c-native-multi-targeting.aspx
  
  This file is a derivative work based on the file of the same name that is
  included with Visual Studio 2010. The original file bears the copyright
  notice reproduced below. Implicit authorization from Microsoft to create and
  distribute derivative works is deduced from comments in the files and
  documentation which describe ways to customize the build system by making
  changes to these files.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-->
<!--Copyright, Microsoft Corporation, All rights reserved.-->
<Rule Name="CL" PageTemplate="tool" DisplayName="C/C++" SwitchPrefix="/" Order="10" xmlns="http://schemas.microsoft.com/build/2009/properties" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <Rule.Categories>
    <Category Name="General" DisplayName="일반"/>
    <Category Name="Optimization" DisplayName="최적화"/>
    <Category Name="Preprocessor" DisplayName="전처리기"/>
    <Category Name="Code Generation" DisplayName="코드 생성"/>
    <Category Name="Language" DisplayName="언어"/>
    <Category Name="Precompiled Headers" DisplayName="미리 컴파일된 헤더"/>
    <Category Name="Output Files" DisplayName="출력 파일"/>
    <Category Name="Browse Information" DisplayName="찾아보기 정보"/>
    <Category Name="Advanced" DisplayName="고급"/>
    <Category Name="Command Line" DisplayName="명령줄" Subtype="CommandLine"/>
  </Rule.Categories>
  <Rule.DataSource>
    <DataSource Persistence="ProjectFile" ItemType="ClCompile" Label="" HasConfigurationCondition="true"/>
  </Rule.DataSource>
  <StringListProperty Subtype="folder" Name="AdditionalIncludeDirectories" DisplayName="추가 포함 디렉터리" Description="포함 경로에 추가할 하나 이상의 디렉터리를 지정합니다. 항목이 여러 개일 때는 세미콜론으로 구분합니다.     (/I[path])" Category="General" Switch="I" F1Keyword="VC.Project.VCCLCompilerTool.AdditionalIncludeDirectories">
  </StringListProperty>
  <StringListProperty Subtype="folder" Name="AdditionalUsingDirectories" DisplayName="#using 참조 확인" Description="#using 지시문에 전달된 이름을 확인하기 위해 검색할 하나 이상의 디렉터리(디렉터리 이름이 여러 개인 경우 세미콜론으로 구분)를 지정합니다.  (/AI[path])" Category="General" Switch="AI" F1Keyword="VC.Project.VCCLCompilerTool.AdditionalUsingDirectories">
  </StringListProperty>
  <EnumProperty Name="DebugInformationFormat" DisplayName="디버그 정보 형식" Description="컴파일러에서 생성되는 디버깅 정보 형식을 지정합니다. 이때 링커 설정이 일치하도록 올바르게 변경해야 합니다.    (/Z7, Zd, /Zi, /ZI)" Category="General" F1Keyword="VC.Project.VCCLCompilerTool.DebugInformationFormat">
    <EnumValue Name="Disabled" Switch="" DisplayName="Disabled" Description="Generation of debug information is disabled.">
    </EnumValue>
    <EnumValue Name="OldStyle" Switch="Z7" DisplayName="C7 호환" Description="프로그램용으로 생성되는 디버깅 정보 형식과 이 정보를 개체(.obj) 파일에 유지할지 아니면 프로그램 데이터베이스(PDB)에 유지할지를 선택합니다.">
    </EnumValue>
    <EnumValue Name="LineNumbers" Switch="Zd" DisplayName="!# Line Numbers Only" Description="!# Produces an .obj file or executable (.exe) file containing only global and external symbol and line-number information (no symbolic debugging information).">
    </EnumValue>
    <EnumValue Name="ProgramDatabase" Switch="Zi" DisplayName="프로그램 데이터베이스" Description="디버거에서 사용할 형식 정보와 기호 디버깅 정보를 포함하는 프로그램 데이터베이스(PDB)를 생성합니다. 기호 디버깅 정보에는 변수의 이름과 형식, 함수 및 줄 번호가 들어 있습니다. ">
    </EnumValue>
    <EnumValue Name="EditAndContinue" Switch="ZI" DisplayName="편집하며 계속하기 프로그램 데이터베이스" Description="위에서 설명하는 것처럼 편집하며 계속하기 기능을 지원하는 형식으로 프로그램 데이터베이스를 생성합니다.">
    </EnumValue>
  </EnumProperty>
  <BoolProperty ReverseSwitch="nologo-" Name="SuppressStartupBanner" DisplayName="시작 배너 표시 안 함" Description="컴파일러가 시작될 때 나타나는 시작 배너와 컴파일하는 동안 나타나는 정보 메시지를 표시하지 않습니다." Category="General" Switch="nologo" F1Keyword="VC.Project.VCCLCompilerTool.SuppressStartupBanner">
  </BoolProperty>
  <EnumProperty Name="WarningLevel" DisplayName="경고 수준" Description="컴파일러가 코드 오류를 처리하는 수준을 선택합니다.     (/W0 - /W4)" Category="General" F1Keyword="VC.Project.VCCLCompilerTool.WarningLevel">
    <EnumValue Name="TurnOffAllWarnings" Switch="W0" DisplayName="모든 경고 해제" Description="수준 0은 모든 경고를 해제합니다.">
    </EnumValue>
    <EnumValue Name="Level1" Switch="W1" DisplayName="Level1" Description="수준 1은 심각한 경고를 표시합니다. 수준 1은 명령줄의 기본 경고 수준입니다.">
    </EnumValue>
    <EnumValue Name="Level2" Switch="W2" DisplayName="Level2" Description="수준 2는 수준 1의 모든 경고와 수준 1보다 덜 심각한 경고를 표시합니다.">
    </EnumValue>
    <EnumValue Name="Level3" Switch="W3" DisplayName="Level3" Description="수준 3은 수준 2의 모든 경고와 프로덕션 용도로 필요한 모든 기타 경고를 표시합니다.">
    </EnumValue>
    <EnumValue Name="Level4" Switch="W4" DisplayName="Level4" Description="수준 4는 수준 3의 모든 경고와 대개 안전하게 무시할 수 있는 정보 메시지를 표시합니다.">
    </EnumValue>
    <EnumValue Name="EnableAllWarnings" Switch="Wall" DisplayName="EnableAllWarnings" Description="기본적으로 해제되어 있는 경고를 포함한 모든 경고를 사용하도록 설정합니다.">
    </EnumValue>
  </EnumProperty>
  <BoolProperty ReverseSwitch="WX-" Name="TreatWarningAsError" DisplayName="경고를 오류로 처리" Description="모든 컴파일러 경고를 오류로 처리합니다. 새 프로젝트인 경우 모든 컴파일에서 /WX를 사용하는 것이 좋습니다. 모든 경고를 확인하면 찾기 어려운 몇 가지 코드 오류를 확인할 수 있습니다." Category="General" Switch="WX" F1Keyword="VC.Project.VCCLCompilerTool.WarnAsError">
  </BoolProperty>
  <StringProperty Subtype="folder" Name="TrackerLogDirectory" DisplayName="추적기 로그 디렉터리" Description="추적기 로그 디렉터리입니다." Category="General" IncludeInCommandLine="false" Visible="false">
  </StringProperty>
  <EnumProperty Name="Optimization" DisplayName="최적화" Description="코드 최적화를 위한 옵션을 선택합니다. 특정 최적화 옵션을 사용하려면 [사용자 지정]을 선택합니다.     (/Od, /O1, /O2, /Ox)" Category="Optimization" F1Keyword="VC.Project.VCCLCompilerTool.Optimization">
    <EnumValue Name="Disabled" Switch="Od" DisplayName="사용 안 함" Description="최적화를 사용하지 않습니다.">
    </EnumValue>
    <EnumValue Name="MinSpace" Switch="O1" DisplayName="크기 최소화" Description="/Og /Os /Oy /Ob2 /Gs /GF /Gy에 해당합니다.">
    </EnumValue>
    <EnumValue Name="MaxSpeed" Switch="O2" DisplayName="속도 최대화" Description="/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy에 해당합니다.">
    </EnumValue>
    <EnumValue Name="Full" Switch="Ox" DisplayName="최대 최적화" Description="/Og /Oi /Ot /Oy /Ob2에 해당합니다.">
    </EnumValue>
  </EnumProperty>
  <EnumProperty Name="InlineFunctionExpansion" DisplayName="인라인 함수 확장" Description="빌드에 대한 인라인 함수 확장 수준을 선택합니다.     (/Ob1, /Ob2)" Category="Optimization" F1Keyword="VC.Project.VCCLCompilerTool.InlineFunctionExpansion">
    <EnumValue Name="Default" Switch="" DisplayName="기본값">
    </EnumValue>
    <EnumValue Name="Disabled" Switch="Ob0" DisplayName="사용 안 함" Description="기본적으로 사용되는 인라인 확장을 사용하지 않도록 설정합니다.">
    </EnumValue>
    <EnumValue Name="OnlyExplicitInline" Switch="Ob1" DisplayName="__inline만 확장" Description="inline, __inline, __forceinline 또는 __inline으로 표시된 함수나 클래스 선언에 정의된 C++ 멤버 함수만 확장합니다.">
    </EnumValue>
    <EnumValue Name="AnySuitable" Switch="Ob2" DisplayName="적합한 것 모두 확장" Description="inline 또는 __inline으로 표시된 함수나 컴파일러가 선택한 다른 모든 함수를 확장합니다(컴파일러의 판단에 따른 이러한 확장을 auto-inlining이라고 함).">
    </EnumValue>
  </EnumProperty>
  <BoolProperty Name="IntrinsicFunctions" DisplayName="내장 함수 사용" Description="내장 함수를 사용합니다. 내장 함수를 사용하면 더 빠르지만 더 큰 코드가 생성됩니다.     (/Oi)" Category="Optimization" Switch="Oi" F1Keyword="VC.Project.VCCLCompilerTool.EnableIntrinsicFunctions">
  </BoolProperty>
  <EnumProperty Name="FavorSizeOrSpeed" DisplayName="크기 또는 속도" Description="코드 크기나 코드 속도 중 우선하는 것을 선택합니다. '전역 최적화'가 설정되어 있어야 합니다.     (/Ot, /Os)" Category="Optimization" F1Keyword="VC.Project.VCCLCompilerTool.FavorSizeOrSpeed">
    <EnumValue Name="Size" Switch="Os" DisplayName="코드 크기 우선" Description="코드 크기 우선. 컴파일러에 속도보다 크기를 우선하도록 지시하여 EXE 및 DLL의 크기를 최소화합니다.">
    </EnumValue>
    <EnumValue Name="Speed" Switch="Ot" DisplayName="코드 속도 우선" Description="코드 속도 우선. 컴파일러에 크기보다 속도를 우선하도록 지시하여 EXE 및 DLL의 속도를 최대화합니다. 이것이 기본값입니다. ">
    </EnumValue>
    <EnumValue Name="Neither" Switch="" DisplayName="모두 안 함" Description="크기 최적화와 속도 최적화를 사용하지 않습니다.">
    </EnumValue>
  </EnumProperty>
  <BoolProperty ReverseSwitch="Oy-" Name="OmitFramePointers" DisplayName="프레임 포인터 생략" Description="호출 스택에서 프레임 포인터를 생성하지 않습니다." Category="Optimization" Switch="Oy" F1Keyword="VC.Project.VCCLCompilerTool.OmitFramePointers">
  </BoolProperty>
  <EnumProperty Name="FloatConsistency" DisplayName="!# Improve Float Consistency" Description="!# Controls the use of optimizations that affect floating-point tests for equality and inequality. (/Op)." Category="Optimization">
    <EnumValue Name="Default" Switch="" DisplayName="!# Default" Description="!# Use default based on other compiler settings.">
    </EnumValue>
    <EnumValue Name="Disabled" Switch="Op-" DisplayName="!# Disabled" Description="!# Enables floating point optimization at the expense of consistency.">
    </EnumValue>
    <EnumValue Name="Enabled" Switch="Op" DisplayName="!# Enabled" Description="!# Improves the consistency of floating-point tests for equality and inequality.">
    </EnumValue>
  </EnumProperty>
  <BoolProperty Name="EnableFiberSafeOptimizations" DisplayName="파이버 안전 최적화 사용" Description="파이버 및 스레드 로컬 저장소 액세스를 사용할 경우 메모리 공간을 최적화합니다.     (/GT)" Category="Optimization" Switch="GT" F1Keyword="VC.Project.VCCLCompilerTool.EnableFiberSafeOptimizations">
  </BoolProperty>
  <BoolProperty Name="WholeProgramOptimization" DisplayName="전체 프로그램 최적화" Description="코드 생성을 링크 타임까지 지연시켜 크로스 모듈을 최적화합니다. 링커 옵션 '링크 타임 코드 생성'이 설정되어 있어야 합니다.     (/GL)" Category="Optimization" Switch="GL" F1Keyword="VC.Project.VCCLWCECompilerTool.WholeProgramOptimization">
  </BoolProperty>
  <StringListProperty Name="PreprocessorDefinitions" DisplayName="전처리기 정의" Description="소스 파일에 대한 전처리 기호를 정의합니다." Category="Preprocessor" Switch="D " F1Keyword="VC.Project.VCCLCompilerTool.PreprocessorDefinitions">
  </StringListProperty>
  <StringListProperty Name="UndefinePreprocessorDefinitions" DisplayName="전처리기 정의 해제" Description="전처리기 정의 해제를 하나 이상 지정합니다.     (/U[macro])" Category="Preprocessor" Switch="U" F1Keyword="VC.Project.VCCLCompilerTool.UndefinePreprocessorDefinitions">
  </StringListProperty>
  <BoolProperty Name="UndefineAllPreprocessorDefinitions" DisplayName="모든 전처리기 정의 해제" Description="이전에 정의한 모든 전처리기 값을 정의 해제합니다.     (/u)" Category="Preprocessor" Switch="u" F1Keyword="VC.Project.VCCLCompilerTool.UndefineAllPreprocessorDefinitions">
  </BoolProperty>
  <BoolProperty Name="IgnoreStandardIncludePath" DisplayName="표준 포함 경로 무시" Description="컴파일러가 INCLUDE 환경 변수에 지정된 디렉터리에서 포함 파일을 검색하지 않도록 설정합니다." Category="Preprocessor" Switch="X" F1Keyword="VC.Project.VCCLCompilerTool.IgnoreStandardIncludePath">
  </BoolProperty>
  <BoolProperty Name="PreprocessToFile" DisplayName="파일로 전처리" Description="C 및 C++ 소스 파일을 전처리하고 전처리된 출력을 파일에 씁니다. 이 옵션은 컴파일을 억제하므로 .obj 파일이 생성되지 않습니다." Category="Preprocessor" Switch="P" F1Keyword="VC.Project.VCCLCompilerTool.GeneratePreprocessedFile">
  </BoolProperty>
  <StringProperty Name="PreprocessOutputPath" DisplayName="전처리 출력 경로" Description="전처리기의 출력 경로를 지정합니다. 기본 위치는 소스 파일의 위치입니다." Category="Preprocessor" Switch="Fi" Visible="false">
  </StringProperty>
  <BoolProperty Name="PreprocessSuppressLineNumbers" DisplayName="전처리 줄 번호 표시 안 함" Description="#line 지시문을 사용하지 않고 전처리합니다." Category="Preprocessor" Switch="EP" F1Keyword="VC.Project.VCCLCompilerTool.GeneratePreprocessedFile">
  </BoolProperty>
  <BoolProperty Name="PreprocessKeepComments" DisplayName="주석 유지" Description="소스 코드의 주석 스트립을 표시하지 않습니다. '전처리' 옵션 중 하나가 설정되어 있어야 합니다.     (/C)" Category="Preprocessor" Switch="C" F1Keyword="VC.Project.VCCLCompilerTool.KeepComments">
  </BoolProperty>
  <BoolProperty Name="StringPooling" DisplayName="문자열 풀링 사용" Description="컴파일러가 프로그램 이미지와 실행 중인 메모리에서 동일한 문자열에 대해 하나의 읽기 전용 복사본을 만들어 더 작은 프로그램을 생성하는 문자열 풀링 최적화를 실행합니다. /O1, /O2 및 /ZI가 자동으로 /GF 옵션을 설정합니다. " Category="Code Generation" Switch="GF" F1Keyword="VC.Project.VCCLCompilerTool.StringPooling">
  </BoolProperty>
  <BoolProperty Name="MinimalRebuild" DisplayName="최소 다시 빌드 가능" Description="변경된 C++ 클래스 정의(헤더(.h) 파일에 저장됨)를 포함하는 C++ 소스 파일을 다시 컴파일해야 하는지 여부를 결정하는 최소 다시 빌드를 사용합니다." Category="Code Generation" Switch="Gm" F1Keyword="VC.Project.VCCLCompilerTool.MinimalRebuild">
  </BoolProperty>
  <EnumProperty Name="ExceptionHandling" DisplayName="C++ 예외 처리 가능" Description="컴파일러가 사용하는 예외 처리 모델을 지정합니다." Category="Code Generation" F1Keyword="VC.Project.VCCLCompilerTool.ExceptionHandling">
    <EnumValue Name="Async" Switch="EHa" DisplayName="예, SEH 예외 있음" Description="비동기(구조적) 및 동기(C++) 예외를 catch하는 예외 처리 모델입니다. (/EHa)">
    </EnumValue>
    <EnumValue Name="Sync" Switch="EHsc" DisplayName="예" Description="C++ 예외만 catch하고 컴파일러에 Extern C 함수가 C++ 예외를 throw하지 않는다고 가정하도록 지시하는 예외 처리 모델입니다. (/EHsc)">
    </EnumValue>
    <EnumValue Name="SyncCThrow" Switch="EHs" DisplayName="예, Extern C 함수 있음" Description="C++ 예외만 catch하고 컴파일러에 Extern C 함수가 예외를 throw한다고 가정하도록 지시하는 예외 처리 모델입니다. (/EHs)">
    </EnumValue>
    <EnumValue Name="false" Switch="" DisplayName="아니요" Description="예외 처리를 하지 않습니다.">
    </EnumValue>
  </EnumProperty>
  <BoolProperty Name="SmallerTypeCheck" DisplayName="작은 형식 검사" Description="더 작은 형식으로의 변환을 검사할 수 있도록 하며, 디버그 이외의 다른 최적화 형식과 호환되지 않습니다.     (/RTCc)" Category="Code Generation" Switch="RTCc" F1Keyword="VC.Project.VCCLCompilerTool.SmallerTypeCheck">
  </BoolProperty>
  <EnumProperty Name="BasicRuntimeChecks" DisplayName="기본 런타임 검사" Description="기본 런타임 오류를 검사하며, 디버그 이외의 다른 최적화 형식과 호환되지 않습니다.     (/RTCs, /RTCu, /RTC1)" Category="Code Generation" F1Keyword="VC.Project.VCCLCompilerTool.BasicRuntimeChecks">
    <EnumValue Name="StackFrameRuntimeCheck" Switch="RTCs" DisplayName="스택 프레임" Description="스택 프레임 런타임 오류를 검사합니다.">
    </EnumValue>
    <EnumValue Name="UninitializedLocalUsageCheck" Switch="RTCu" DisplayName="초기화되지 않은 변수" Description="초기화되지 않은 변수를 사용할 경우 보고합니다.">
    </EnumValue>
    <EnumValue Name="EnableFastChecks" Switch="RTC1" DisplayName="모두(/RTC1, /RTCsu와 동일)" Description="/RTCsu와 동일합니다.">
    </EnumValue>
    <EnumValue Name="Default" Switch="" DisplayName="기본값" Description="기본 런타임 검사입니다.">
    </EnumValue>
  </EnumProperty>
  <EnumProperty Name="TargetProcessor" DisplayName="Processor" Description="Direct the compiler to optimize code generation for the 80386, 80486, or Pentium® processors.     (/G3, /G4, /G5, /G6, /GB)." Category="Code Generation">
    <EnumValue Name="80386" Switch="G3" DisplayName="80386" Description="Forces a value of 300 for the _M_IX86 preprocessor macro. The compiler ignores this option.">
    </EnumValue>
    <EnumValue Name="80486" Switch="G4" DisplayName="80486" Description="Forces a value of 400 for the _M_IX86 preprocessor macro. The compiler ignores this option.">
    </EnumValue>
    <EnumValue Name="Pentium" Switch="G5" DisplayName="Pentium" Description="Optimizes the code created to favor the Pentium. Use this option for programs meant only for the Pentium. This option forces a value of 500 for the _M_IX86 preprocessor macro.">
    </EnumValue>
    <EnumValue Name="PentiumPro" Switch="G6" DisplayName="Pentium Pro" Description="Optimizes the code created to favor the Pentium Pro. Use this option for programs meant only for the Pentium Pro. This option forces a value of 600 for the _M_IX86 preprocessor macro.">
    </EnumValue>
    <EnumValue Name="Blend" Switch="GB" DisplayName="Blend" Description="Blends the optimizations for the 80386 (/G3), 80486 (/G4), Pentium (/G5), and Pentium Pro (/G6) options. This option forces a value of 500 for the _M_IX86 preprocessor macro. This value is the default.">
    </EnumValue>
  </EnumProperty>
  <EnumProperty Name="RuntimeLibrary" DisplayName="런타임 라이브러리" Description="링크할 런타임 라이브러리를 지정합니다.     (/MT, /MTd, /MD, /MDd)" Category="Code Generation" F1Keyword="VC.Project.VCCLCompilerTool.RuntimeLibrary">
    <EnumValue Name="MultiThreaded" Switch="MT" DisplayName="다중 스레드" Description="응용 프로그램에서 런타임 라이브러리의 다중 스레드 정적 버전을 사용하게 됩니다.">
    </EnumValue>
    <EnumValue Name="MultiThreadedDebug" Switch="MTd" DisplayName="다중 스레드 디버그" Description="_DEBUG 및 _MT를 정의합니다. 또한, 이 옵션은 컴파일러가 .obj 파일에 라이브러리 이름 LIBCMTD.lib를 배치하여 링커가 LIBCMTD.lib를 사용하여 외부 기호를 확인하도록 만듭니다.">
    </EnumValue>
    <EnumValue Name="MultiThreadedDLL" Switch="MD" DisplayName="다중 스레드 DLL" Description="응용 프로그램에서 런타임 라이브러리의 다중 스레드 DLL별 버전을 사용하게 됩니다. _MT 및 _DLL을 정의하고 컴파일러가 라이브러리 이름 MSVCRT.lib를 .obj 파일에 배치하게 만듭니다.">
    </EnumValue>
    <EnumValue Name="MultiThreadedDebugDLL" Switch="MDd" DisplayName="다중 스레드 디버그 DLL" Description="_DEBUG, _MT 및 _DLL을 정의하고 응용 프로그램에서 런타임 라이브러리의 디버그 다중 스레드 DLL별 버전을 사용하게 됩니다. 또한 컴파일러가 라이브러리 이름 MSVCRTD.lib를 .obj 파일에 배치하게 만듭니다.">
    </EnumValue>
    <EnumValue Name="SingleThreaded" Switch="ML" DisplayName="!# Single-threaded" Description="!# Causes your application to use the single thread, static version of the run-time library.">
    </EnumValue>
    <EnumValue Name="SingleThreadedDebug" Switch="MLd" DisplayName="!# Single-threaded Debug" Description="!# Defines _DEBUG. This option also causes the compiler to place the library name LIBCD.lib into the .obj file so that the linker will use LIBCD.lib to resolve external symbols.">
    </EnumValue>
  </EnumProperty>
  <EnumProperty Name="StructMemberAlignment" DisplayName="구조체 멤버 맞춤" Description="1, 2, 4, 8바이트 경계를 지정하여 구조체 멤버를 맞춥니다.     (/Zp[num])" Category="Code Generation" F1Keyword="VC.Project.VCCLCompilerTool.StructMemberAlignment">
    <EnumValue Name="1Byte" Switch="Zp1" DisplayName="1바이트" Description="1바이트 경계에서 구조체를 압축합니다. /Zp와 동일합니다.">
    </EnumValue>
    <EnumValue Name="2Bytes" Switch="Zp2" DisplayName="2바이트" Description="2바이트 경계에서 구조체를 압축합니다.">
    </EnumValue>
    <EnumValue Name="4Bytes" Switch="Zp4" DisplayName="4바이트" Description="4바이트 경계에서 구조체를 압축합니다.">
    </EnumValue>
    <EnumValue Name="8Bytes" Switch="Zp8" DisplayName="8바이트" Description="8바이트 경계에서 구조체를 압축합니다(기본값).">
    </EnumValue>
    <EnumValue Name="16Bytes" Switch="Zp16" DisplayName="16바이트" Description="16바이트 경계에서 구조체를 압축합니다.">
    </EnumValue>
    <EnumValue Name="Default" Switch="" DisplayName="기본값" Description="기본 맞춤 설정입니다.">
    </EnumValue>
  </EnumProperty>
  <BoolProperty Name="BufferSecurityCheck" DisplayName="버퍼 보안 검사" Description="버퍼 오버런을 검사합니다. 인터넷 서버에서 해킹 가능한 루프홀을 닫을 때 유용합니다. 기본값을 사용합니다.     (/GS)" Category="Code Generation" Switch="GS" F1Keyword="VC.Project.VCCLCompilerTool.BufferSecurityCheck">
  </BoolProperty>
  <BoolProperty Name="FunctionLevelLinking" DisplayName="함수 수준 링크 사용" Description="컴파일러가 개별 함수를 패키지된 함수의 형태로 패키지할 수 있습니다(COMDATs). 편집하며 계속하기가 작동하려면 필요합니다.     (/Gy)" Category="Code Generation" Switch="Gy" F1Keyword="VC.Project.VCCLCompilerTool.EnableFunctionLevelLinking">
  </BoolProperty>
  <EnumProperty Name="EnableEnhancedInstructionSet" DisplayName="고급 명령 집합 사용" Description="고급 명령 집합을 지원하는 프로세서에 포함된 명령을 사용할 수 있습니다. 예를 들어, IA-32에 대해 SSE 및 SSE2 명령의 고급 기능을 사용할 수 있습니다. 현재 x86 아키텍처에 대해 빌드하는 경우에만 사용할 수 있습니다.   (/arch:SSE, /arch:SSE2)" Category="Code Generation" F1Keyword="VC.Project.VCCLCompilerTool.EnableEnhancedInstructionSet">
    <EnumValue Name="StreamingSIMDExtensions" Switch="arch:SSE" DisplayName="스트리밍 SIMD Extensions(/arch:SSE)" Description="스트리밍 SIMD Extensions(/arch:SSE)">
    </EnumValue>
    <EnumValue Name="StreamingSIMDExtensions2" Switch="arch:SSE2" DisplayName="스트리밍 SIMD Extensions 2(/arch:SSE2)" Description="스트리밍 SIMD Extensions 2(/arch:SSE2)">
    </EnumValue>
    <EnumValue Name="NotSet" Switch="" DisplayName="설정 안 함" Description="설정되지 않았습니다.">
    </EnumValue>
  </EnumProperty>
  <BoolProperty Name="DisableLanguageExtensions" DisplayName="언어 확장 사용 안 함" Description="언어 확장을 해제하거나 설정합니다.     (/Za)" Category="Language" Switch="Za" F1Keyword="VC.Project.VCCLCompilerTool.DisableLanguageExtensions">
  </BoolProperty>
  <BoolProperty Name="TreatWChar_tAsBuiltInType" DisplayName="WChar_t를 기본 제공 형식으로 처리" Description="이 옵션을 지정하면 short가 __int16에 매핑되는 것과 동일한 방식으로, wchar_t 형식이 __wchar_t에 매핑되는 네이티브 형식이 됩니다. /Zc:wchar_t가 기본적으로 설정됩니다." Category="Language" Switch="Zc:wchar_t" F1Keyword="VC.Project.VCCLCompilerTool.TreatWChar_tAsBuiltInType">
  </BoolProperty>
  <BoolProperty Name="ForceConformanceInForLoopScope" DisplayName="For 루프 범위 강제 규칙" Description="Microsoft 확장으로 for 문 루프의 표준 C++ 동작을 구현하기 위해 사용됩니다(/Za, /Ze(언어 확장 사용 안 함)). /Zc:forScope가 기본적으로 설정됩니다." Category="Language" Switch="Zc:forScope" F1Keyword="VC.Project.VCCLCompilerTool.ForceConformanceInForLoopScope">
  </BoolProperty>
  <BoolProperty ReverseSwitch="GR-" Name="RuntimeTypeInfo" DisplayName="런타임 형식 정보 사용" Description="런타임에 C++ 개체의 형식(런타임 형식 정보)을 검사하는 코드를 추가합니다.     (/GR, /GR-)" Category="Language" Switch="GR" F1Keyword="VC.Project.VCCLCompilerTool.RuntimeTypeInfo">
  </BoolProperty>
  <EnumProperty Name="PrecompiledHeader" DisplayName="미리 컴파일된 헤더" Description="미리 컴파일된 헤더 만들기/사용 : 빌드하는 동안 미리 컴파일된 헤더를 만들거나 사용합니다.     (/Yc, /YX, /Yu)" Category="Precompiled Headers" F1Keyword="VC.Project.VCCLCompilerTool.UsePrecompiledHeader">
    <EnumValue Name="Create" Switch="Yc" DisplayName="만들기" Description="컴파일러가 특정 지점에 컴파일 상태를 나타내는 미리 컴파일된 헤더(.pch) 파일을 만들도록 지시합니다.">
      <Argument Property="PrecompiledHeaderFile" IsRequired="false"/>
    </EnumValue>
    <EnumValue Name="Automatic" Switch="YX" DisplayName="!# Automatic" Description="!# This option instructs the compiler to use a precompiled header file (.pch) if one exists or to create one if none exists.">
      <Argument Property="PrecompiledHeaderFile" IsRequired="false" />
    </EnumValue>
    <EnumValue Name="Use" Switch="Yu" DisplayName="사용" Description="컴파일러가 현재 컴파일에서 기존의 미리 컴파일된 헤더(.pch) 파일을 사용하도록 지시합니다.">
      <Argument Property="PrecompiledHeaderFile" IsRequired="false"/>
    </EnumValue>
    <EnumValue Name="NotUsing" Switch="" DisplayName="미리 컴파일된 헤더 사용 안 함" Description="미리 컴파일된 헤더를 사용하지 않습니다. ">
    </EnumValue>
  </EnumProperty>
  <StringProperty Subtype="file" Name="PrecompiledHeaderFile" DisplayName="미리 컴파일된 헤더 파일" Description="미리 컴파일된 헤더 파일을 만들거나 사용할 때 사용할 헤더 파일 이름을 지정합니다. (/Yc[name], /Yu[name])" Category="Precompiled Headers" F1Keyword="VC.Project.VCCLCompilerTool.PrecompiledHeaderThrough">
  </StringProperty>
  <StringProperty Subtype="file" Name="PrecompiledHeaderOutputFile" DisplayName="미리 컴파일된 헤더 출력 파일" Description="생성된 미리 컴파일된 헤더 파일의 경로 및/또는 이름을 지정합니다. (/Fp[name])" Category="Precompiled Headers" Switch="Fp" F1Keyword="VC.Project.VCCLCompilerTool.PrecompiledHeaderFile">
  </StringProperty>
  <BoolProperty Name="ExpandAttributedSource" DisplayName="특성 사용 소스 확장" Description="소스 파일에 확장된 특성을 삽입한 목록 파일을 만듭니다.     (/Fx)" Category="Output Files" Switch="Fx" F1Keyword="VC.Project.VCCLCompilerTool.ExpandAttributedSource">
  </BoolProperty>
  <EnumProperty Name="AssemblerOutput" DisplayName="어셈블러 출력" Description="어셈블리 언어 출력 파일의 내용을 지정합니다.     (/FA, /FAc, /FAs, /FAcs)" Category="Output Files" F1Keyword="VC.Project.VCCLCompilerTool.AssemblerOutput">
    <EnumValue Name="NoListing" Switch="" DisplayName="목록 없음" Description="목록을 표시하지 않습니다. ">
    </EnumValue>
    <EnumValue Name="AssemblyCode" Switch="FA" DisplayName="어셈블리 전용 목록" Description="어셈블리 코드; .asm">
    </EnumValue>
    <EnumValue Name="AssemblyAndMachineCode" Switch="FAc" DisplayName="기계어 코드로 된 어셈블리" Description="기계어 및 어셈블리 코드; .cod">
    </EnumValue>
    <EnumValue Name="AssemblyAndSourceCode" Switch="FAs" DisplayName="소스 코드로 구성된 어셈블리" Description="소스 및 어셈블리 코드; .asm">
    </EnumValue>
    <EnumValue Name="All" Switch="FAcs" DisplayName="어셈블리, 기계어 코드, 소스" Description="어셈블리, 기계어 코드 및 소스 코드; .cod">
    </EnumValue>
  </EnumProperty>
  <StringProperty Subtype="file" Name="AssemblerListingLocation" DisplayName="ASM 목록 위치" Description="ASM 목록 파일의 상대 경로 및/또는 이름을 지정합니다. 파일 또는 디렉터리 이름이 될 수 있습니다.     (/Fa[name])" Category="Output Files" Switch="Fa" F1Keyword="VC.Project.VCCLCompilerTool.AssemblerListingLocation">
  </StringProperty>
  <StringProperty Subtype="file" Name="ObjectFileName" DisplayName="개체 파일 이름" Description="기본 개체 파일 이름을 재정의하는 이름을 지정합니다. 파일 또는 디렉터리 이름이 될 수 있습니다.     (/Fo[name])" Category="Output Files" Switch="Fo" F1Keyword="VC.Project.VCCLCompilerTool.ObjectFile">
  </StringProperty>
  <StringProperty Subtype="file" Name="ProgramDataBaseFileName" DisplayName="프로그램 데이터베이스 파일 이름" Description="컴파일러 생성 PDB 파일 이름을 지정합니다. 또한 필요한 컴파일러 생성 IDB 파일의 기본 이름도 지정합니다. 파일 또는 디렉터리 이름이 될 수 있습니다.     (/Fd[name])" Category="Output Files" Switch="Fd" F1Keyword="VC.Project.VCCLCompilerTool.ProgramDataBaseFileName">
  </StringProperty>
  <BoolProperty Name="BrowseInformation" DisplayName="찾아보기 정보 사용" Description="찾아보기 정보 사용 : .bsc 파일에 찾아보기 정보 수준을 지정합니다.     (/FR)" Category="Browse Information" Switch="FR" F1Keyword="VC.Project.VCCLCompilerTool.BrowseInformation">
    <Argument Property="BrowseInformationFile" IsRequired="false"/>
  </BoolProperty>
  <StringProperty Subtype="file" Name="BrowseInformationFile" DisplayName="찾아보기 정보 파일" Description="찾아보기 파일 : 찾아보기 정보 파일의 이름(선택 사항)을 지정합니다.     (/FR[name])" Category="Browse Information" F1Keyword="VC.Project.VCCLCompilerTool.BrowseInformationFile">
  </StringProperty>
  <EnumProperty Name="CallingConvention" DisplayName="호출 규칙" Description="응용 프로그램에 대한 기본 호출 규칙을 선택합니다(함수로 재정의할 수 있음).     (/Gd, /Gr, /Gz)" Category="Advanced" F1Keyword="VC.Project.VCCLCompilerTool.CallingConvention">
    <EnumValue Name="Cdecl" Switch="Gd" DisplayName="__cdecl" Description="C++ 멤버 함수와 __stdcall 또는 __fastcall로 표시된 함수를 제외한 모든 함수에 대해 __cdecl 호출 규칙을 지정합니다.">
    </EnumValue>
    <EnumValue Name="FastCall" Switch="Gr" DisplayName="__fastcall" Description="C++ 멤버 함수와 __cdecl 또는 __stdcall로 표시된 함수를 제외한 모든 함수에 대해 __fastcall 호출 규칙을 지정합니다. 모든 __fastcall 함수에는 프로토타입이 있어야 합니다.">
    </EnumValue>
    <EnumValue Name="StdCall" Switch="Gz" DisplayName="__stdcall" Description="C++ 멤버 함수와 __cdecl 또는 __fastcall로 표시된 함수를 제외한 모든 함수에 대해 __stdcall 호출 규칙을 지정합니다. 모든 __stdcall 함수에는 프로토타입이 있어야 합니다.">
    </EnumValue>
  </EnumProperty>
  <EnumProperty Name="CompileAs" DisplayName="컴파일 옵션" Description=".c 및 .cpp 파일에 대한 컴파일 언어 옵션을 선택합니다.     (/TC, /TP)" Category="Advanced" F1Keyword="VC.Project.VCCLCompilerTool.CompileAs">
    <EnumValue Name="Default" Switch="" DisplayName="기본값" Description="기본값입니다.">
    </EnumValue>
    <EnumValue Name="CompileAsC" Switch="TC" DisplayName="C 코드로 컴파일" Description="C 코드로 컴파일">
    </EnumValue>
    <EnumValue Name="CompileAsCpp" Switch="TP" DisplayName="C++ 코드로 컴파일" Description="C++ 코드로 컴파일">
    </EnumValue>
  </EnumProperty>
  <StringListProperty Name="DisableSpecificWarnings" DisplayName="특정 경고 사용 안 함" Description="원하는 경고 번호를 사용하지 않도록 설정합니다. 세미콜론으로 구분된 목록에 경고 번호를 입력합니다.     (/wd[num])" Category="Advanced" Switch="wd" F1Keyword="VC.Project.VCCLCompilerTool.DisableSpecificWarnings">
  </StringListProperty>
  <StringListProperty Subtype="file" Name="ForcedIncludeFiles" DisplayName="강제 포함 파일" Description="하나 이상의 강제 포함 파일입니다.     (/FI[name])" Category="Advanced" Switch="FI" F1Keyword="VC.Project.VCCLCompilerTool.ForcedIncludeFiles">
  </StringListProperty>
  <StringListProperty Subtype="file" Name="ForcedUsingFiles" DisplayName="강제 #using 파일" Description="하나 이상의 강제 #using 파일을 지정합니다.     (/FU[name])" Category="Advanced" Switch="FU" F1Keyword="VC.Project.VCCLCompilerTool.ForcedUsingFiles">
  </StringListProperty>
  <BoolProperty Name="ShowIncludes" DisplayName="포함 표시" Description="컴파일러 출력으로 포함 파일 목록을 생성합니다.     (/showIncludes)" Category="Advanced" Switch="showIncludes" F1Keyword="VC.Project.VCCLCompilerTool.ShowIncludes">
  </BoolProperty>
  <BoolProperty Name="OmitDefaultLibName" DisplayName="기본 라이브러리 이름 생략" Description=".obj 파일에 기본 라이브러리 이름을 포함하지 않습니다.     (/Zl)" Category="Advanced" Switch="Zl" F1Keyword="VC.Project.VCCLCompilerTool.OmitDefaultLibName">
  </BoolProperty>
  <StringListProperty Name="TreatSpecificWarningsAsErrors" DisplayName="특정 경고를 오류로 처리" Description="특정 컴파일러 경고를 오류로 처리합니다(n은 컴파일러 경고)." Category="Advanced" Switch="we" F1Keyword="VC.Project.VCCLCompilerTool.TreatSpecificWarningsAsErrors">
  </StringListProperty>
  <StringProperty Name="AdditionalOptions" DisplayName="추가 옵션" Description="추가 옵션" Category="Command Line" F1Keyword="vc.project.AdditionalOptionsPage">
  </StringProperty>
  <BoolProperty Name="BuildingInIDE" Visible="false">
  </BoolProperty>
</Rule>
